//
//  WelcomeViewController.swift
//  Weibo T
//
//  Created by mac on 15/12/1.
//  Copyright © 2015年 陈肖坤. All rights reserved.
//

import UIKit
import SnapKit
import SDWebImage


class WelcomeViewController: UIViewController {
    
    //loadView阶段 替换跟试图
    override func loadView() {
        view = backImage
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        setupUI()
        //设置图片 可以在ViewDidLoad中执行
        iconImage.sd_setImageWithURL(UserAccountViewModel().headImageURL, placeholderImage: UIImage(named: "avatar_default_big"))
    }
    //动画效果 在 中执行
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        satartAnimation()
    }
    private func satartAnimation() {
    /*
    使用自动布局 设置动画效果 需要注意
    1.所有设置自动布局的空间 在添加动画效果的时候  不要直接设置 frame
    原因:
    1.自动布局系统 会根据设置的约束  自动计算空间的frame
    2.在layoutsubViews方法中给所有的子控件 根据设置好的约束  修改相应的frame值
    3.如果主动修改frame  会引起自动布局系统计算错误
    
    每一次运行循环的开启  自动布局系统都会 '收集' 所有控件约束的变化
    在运行循环结束前 调用 layoutsubViews 统一一次性 将所有收集到的变化 进行更新
    
    如果希望提前更新  就需要调用强制刷新布局方法 layoutIfNeeded
    
    */
    
        //提前更改约束 \  //对于已经添加过的约束 属性 需要修改  可以使用snp_updateConstraints
        let offset = -screenH + 180
        iconImage.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(self.view.snp_bottom).offset(offset)
        }
        UIView.animateWithDuration(1.2, delay: 0, usingSpringWithDamping: 0.9, initialSpringVelocity: 9.8, options: [], animations: { () -> Void in
            //强制提前刷新页面
            self.view.layoutIfNeeded()
            
            }) { (_) -> Void in
                //发出切换页面消息
                NSNotificationCenter.defaultCenter().postNotificationName(WBSwitchRootVCNotification, object: nil)
        }
    }
    //设置frame
    private func setupUI() {
    
        //添加子视图
        view.addSubview(iconImage)
        view.addSubview(welcomeLabel)
        
        //设置布局
        iconImage.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-180)
            make.size.equalTo(CGSize(width: 90, height: 90))
        }
        
        welcomeLabel.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(iconImage.snp_bottom).offset(16)
            make.centerX.equalTo(iconImage.snp_centerX)
        }
        //设置头像圆角
        iconImage.layer.cornerRadius = 45
        iconImage.layer.masksToBounds = true

    }

    //懒加载子示图
    private lazy var backImage: UIImageView = UIImageView(image: UIImage(named: "ad_background"))

    //加载头像
    private lazy var iconImage: UIImageView = UIImageView()
    
    //欢迎文本
    private lazy var welcomeLabel: UILabel = UILabel(title: (UserAccountViewModel().userName ?? "") + " 欢迎归来", fontSize: 19)


}